/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.com.server.universidad;

import co.com.jpa.controllers.UniversidadJpaController;
import co.com.jpa.controllers.exceptions.NonexistentEntityException;
import co.com.jpa.controllers.exceptions.PreexistingEntityException;
import co.com.entities.Universidad;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;

import co.com.cliente.universidad.services.UniversidadS;
import com.google.gwt.user.client.rpc.AsyncCallback;
import java.math.BigDecimal;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author dloaiza
 */
public class UniversidadSImpl extends RemoteServiceServlet implements UniversidadS {


    public void guardarUniversidad(Universidad universidad) {
         try {
            UniversidadJpaController universidadJpaController = (UniversidadJpaController) getServletContext().getAttribute("universidadJpaController");
            universidadJpaController.create(universidad);
        } catch (PreexistingEntityException ex) {
            Logger.getLogger(UniversidadSImpl.class.getName()).log(Level.SEVERE, null, ex);
            throw new RuntimeException("Señor usuario, la universidad ya se encuentra registrada en el sistema.");
        } catch (Exception ex) {
            Logger.getLogger(UniversidadSImpl.class.getName()).log(Level.SEVERE, null, ex);
            throw new RuntimeException("Señor usuario, Ocurrió un error en el sistema por favor intente más tarde.");
        }
    }

    public void actualizarUniversidad(Universidad universidad) {
          try {
            UniversidadJpaController universidadJpaController = (UniversidadJpaController) getServletContext().getAttribute("universidadJpaController");
            universidadJpaController.edit(universidad);
        } catch (NonexistentEntityException ex) {
            Logger.getLogger(UniversidadSImpl.class.getName()).log(Level.SEVERE, null, ex);
            throw new RuntimeException("Señor usuario, Ocurrió un error en el sistema por favor intente más tarde.");
        } catch (Exception ex) {
            Logger.getLogger(UniversidadSImpl.class.getName()).log(Level.SEVERE, null, ex);
            throw new RuntimeException("Señor usuario, Ocurrió un error en el sistema por favor intente más tarde.");
        }
    }

    public void eliminarUniversidads(List<Universidad> universidades) {
        UniversidadJpaController universidadJpaController = (UniversidadJpaController) getServletContext().getAttribute("universidadJpaController");
        for (Universidad universidad : universidades) {
            try {
                universidadJpaController.destroy(universidad.getNmidUniversidad());
            } catch (NonexistentEntityException ex) {
                Logger.getLogger(UniversidadSImpl.class.getName()).log(Level.SEVERE, null, ex);
                throw new RuntimeException("Señor usuario, Ocurrió un error en el sistema por favor intente más tarde.");
            }
        }
    }

    public List<Universidad> consultarUniversidads() {
        UniversidadJpaController universidadJpaController = (UniversidadJpaController) getServletContext().getAttribute("universidadJpaController");
        return universidadJpaController.findUniversidadEntities();
    }

}
